/**
 * 
 */
package br.com.skynix.tcmc.controller.configuracao.rh.posicoes_funcionarios;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import org.springframework.stereotype.Controller;

import br.com.skynix.tcmc.base.managedbeans.AbstractCRUDManagedBean;
import br.com.skynix.tcmc.base.spring.IServiceAuditavel;
import br.com.skynix.tcmc.model.rh.CategoriaFuncionario;
import br.com.skynix.tcmc.model.rh.PosicaoFuncionario;
import br.com.skynix.tcmc.service.configuracao.rh.categorias_funcionarios.CategoriaFuncionarioService;
import br.com.skynix.tcmc.service.configuracao.rh.posicoes_funcionarios.PosicaoFuncionarioService;

/**
 * @author davi
 * 
 */
@ManagedBean
@RequestScoped
@Controller
public class PosicaoFuncionarioMB extends
		AbstractCRUDManagedBean<PosicaoFuncionario> {
	@Resource
	private PosicaoFuncionarioService posicaoFuncionarioService;

	@Resource
	private CategoriaFuncionarioService categoriaFuncionarioService;

	public PosicaoFuncionarioMB() {
		setModeloPesquisa(new PosicaoFuncionario());
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * br.com.skynix.tcmc.base.managedbeans.AbstractCRUDManagedBean#getService()
	 */
	@Override
	protected IServiceAuditavel<PosicaoFuncionario> getService() {
		return posicaoFuncionarioService;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see br.com.skynix.tcmc.base.managedbeans.AbstractCRUDManagedBean#
	 * getPathParaModuloCRUD()
	 */
	@Override
	protected String getPathParaModuloCRUD() {
		return formatPath("configuracao/rh/posicoes_funcionarios/posicao_funcionario_crud_view");
	}

	public List<CategoriaFuncionario> getListaCategoriaFuncionario() {
		List<CategoriaFuncionario> categorias = new ArrayList<CategoriaFuncionario>();
		if (getModeloEdicao().getEmpresa() != null) {
			CategoriaFuncionario categoriaModelo = new CategoriaFuncionario();
			categoriaModelo.setEmpresa(getModeloEdicao().getEmpresa());
			categorias = categoriaFuncionarioService
					.buscarPeloExemplo(categoriaModelo);
		}
		return categorias;
	}
}
